{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import numpy as np\n",
    "os.environ[\"CUDA_DEVICE_ORDER\"]=\"PCI_BUS_ID\" \n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"1\" "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [],
   "source": [
    "file1 = open('../../datasets/Amazon-531/keyword_ext/pke_final_label.txt', 'r')\n",
    "documents = file1.readlines()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['plastic parts\\n', 'finger\\n', 'shampoo\\n', 'dogs\\n', 'cola\\n']"
      ]
     },
     "execution_count": 153,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "documents[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['plastic parts', 'finger', 'shampoo', 'dogs', 'cola']"
      ]
     },
     "execution_count": 154,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "unique_class = []\n",
    "for row in documents:\n",
    "    #label = row.strip().split(\": \")[1]\n",
    "    label = row.strip()\n",
    "    if not label in unique_class:\n",
    "        unique_class.append(label)\n",
    "unique_class[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "file1 = open('../../datasets/DBPedia-298/llm_cluster_result/update_labelspace.txt', 'r')\n",
    "documents = file1.readlines()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Data Mining',\n",
       " 'Network Aggregation and Fault Tolerance',\n",
       " 'Natural Language Processing',\n",
       " 'Linear Codes and Sphere Decoding',\n",
       " 'Economics and Machine Learning',\n",
       " 'Network Security',\n",
       " 'Signal Processing',\n",
       " 'Combinatorics',\n",
       " 'Communication Systems and Networks',\n",
       " 'Social Network Analysis',\n",
       " 'Control Systems',\n",
       " 'Wireless Communications',\n",
       " 'Image Segmentation',\n",
       " 'Database Management',\n",
       " 'Game Theory',\n",
       " 'Information Theory',\n",
       " 'Model-Driven Engineering',\n",
       " 'Machine Learning',\n",
       " 'Graph Algorithms',\n",
       " 'Error Correction Codes',\n",
       " 'Bioinformatics',\n",
       " 'Data Compression and Coding',\n",
       " 'Computer Science',\n",
       " 'Control Theory',\n",
       " 'Computational Complexity',\n",
       " 'Theoretical Computer Science',\n",
       " 'Functional Data Analysis',\n",
       " 'Logic and Formal Systems',\n",
       " 'Community Detection in Networks',\n",
       " 'Sports Science and Technology',\n",
       " 'Transportation Planning',\n",
       " 'Multi-Agent Systems',\n",
       " 'Web Mining',\n",
       " 'Scientometrics',\n",
       " 'Quantum Computing',\n",
       " 'Recommender Systems',\n",
       " 'Biometric Authentication',\n",
       " 'Cryptography',\n",
       " 'Text Mining and Visualization',\n",
       " 'Formal Verification',\n",
       " 'Data Privacy and Security',\n",
       " 'Robotics and Artificial Intelligence',\n",
       " 'Probability Theory and Statistics',\n",
       " 'Soil Hydrology',\n",
       " 'Optimization Problems in Communication Networks',\n",
       " 'Video Indexing and Search',\n",
       " 'Optimization',\n",
       " 'Scientific Inquiry',\n",
       " 'Face Verification',\n",
       " 'Multi-Armed Bandit Problems',\n",
       " 'Information Retrieval',\n",
       " 'Computer Vision',\n",
       " 'Neural Networks and Deep Learning',\n",
       " 'Mobile Computing',\n",
       " 'Graph Colorings',\n",
       " 'Wiretap Channel and Lattice Coset Encoding',\n",
       " 'Political Science',\n",
       " 'Clustering and Partitioning',\n",
       " 'Statistical Process Control']"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "unique_class = []\n",
    "for row in documents:\n",
    "    label = row.strip()\n",
    "    if label not in unique_class:\n",
    "        unique_class.append(label)\n",
    "unique_class"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Similarity: tensor([[0.7585, 1.0000]])\n"
     ]
    }
   ],
   "source": [
    "from sentence_transformers import SentenceTransformer, util\n",
    "model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')\n",
    "\n",
    "query_embedding = model.encode('Computer Science')\n",
    "passage_embedding = model.encode(['Computational Science',\n",
    "                                  'Computer Science'])\n",
    "\n",
    "print(\"Similarity:\", util.dot_score(query_embedding, passage_embedding))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.75847161, 1.        ],\n",
       "       [0.75847161, 1.        ]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p = np.empty((0,2))\n",
    "p = np.append(p, util.dot_score(query_embedding, passage_embedding).numpy(), 0)\n",
    "p = np.append(p, util.dot_score(query_embedding, passage_embedding).numpy(), 0)\n",
    "p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.00000012,  0.26601616,  0.21179536, ..., -0.05940329,\n",
       "         0.20609258,  0.23424342],\n",
       "       [ 0.26601619,  1.        ,  0.34021586, ...,  0.01578902,\n",
       "         0.25305748,  0.22103274],\n",
       "       [ 0.21179536,  0.3402158 ,  1.00000024, ...,  0.12053396,\n",
       "         0.17569378,  0.40812188],\n",
       "       ...,\n",
       "       [-0.05940323,  0.0157891 ,  0.12053395, ...,  1.        ,\n",
       "         0.04189221, -0.0470699 ],\n",
       "       [ 0.20609269,  0.25305748,  0.17569384, ...,  0.04189213,\n",
       "         1.00000012,  0.1837882 ],\n",
       "       [ 0.23424348,  0.22103266,  0.408122  , ..., -0.04706997,\n",
       "         0.18378818,  0.99999994]])"
      ]
     },
     "execution_count": 155,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sim_matrix = np.empty((0,len(unique_class)))\n",
    "for i in range(len(unique_class)):\n",
    "    query_embedding = model.encode(unique_class[i])\n",
    "    passage_embedding = model.encode(unique_class)\n",
    "    sim_matrix = np.append(sim_matrix, util.dot_score(query_embedding, passage_embedding).numpy(), 0)\n",
    "sim_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(360, 360)"
      ]
     },
     "execution_count": 156,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sim_matrix.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {},
   "outputs": [],
   "source": [
    "sim_list = []\n",
    "for i, sim_score in enumerate(sim_matrix):\n",
    "    for j in range(len(sim_score)):\n",
    "        if sim_score[j] > 0.70 and sim_score[j] < 0.99:\n",
    "            if i < j:\n",
    "                sim = [i, unique_class[i], j , unique_class[j], sim_score[j]]\n",
    "                sim_list.append(sim)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[[0, 'plastic parts', 21, 'light weight plastic', 0.7036082744598389],\n",
       " [1, 'finger', 339, 'hand', 0.7315326929092407],\n",
       " [3, 'dogs', 46, 'cats', 0.7152448892593384],\n",
       " [3, 'dogs', 172, 'dog', 0.8241753578186035],\n",
       " [5, 'good', 328, 'great', 0.7270901799201965],\n",
       " [8, 'daughter', 165, 'child', 0.7318620681762695],\n",
       " [20, 'diapers', 112, 'dry diapers', 0.8514155149459839],\n",
       " [20, 'diapers', 347, 'diaper', 0.8476865291595459],\n",
       " [26, 'ounce boxes', 31, 'ounce packages', 0.8070602416992188],\n",
       " [28, 'big', 224, 'bigger', 0.7956337928771973],\n",
       " [32, 'wife', 253, 'husband', 0.8688588738441467],\n",
       " [33, 'water', 359, 'dirty water', 0.7085109949111938],\n",
       " [40, 'thin hair', 88, 'hair', 0.7617841958999634],\n",
       " [40, 'thin hair', 324, 'thin', 0.724195122718811],\n",
       " [46, 'cats', 315, 'cat', 0.870348334312439],\n",
       " [48, 'product', 78, 'products', 0.8828967809677124],\n",
       " [49, 'boy', 358, 'son', 0.7497989535331726],\n",
       " [51, 'months', 124, 'month', 0.9104166626930237],\n",
       " [56, 'year old son', 103, 'year old', 0.8086986541748047],\n",
       " [60, 'days', 168, 'day', 0.759134829044342],\n",
       " [64, 'pains', 160, 'pain', 0.8000087738037109],\n",
       " [67, 'seat', 190, 'chair', 0.7687357664108276],\n",
       " [78, 'products', 121, 'quality products', 0.7123598456382751],\n",
       " [89, 'shirt', 216, 'clothing', 0.7141342163085938],\n",
       " [91, 'awesome toy', 100, 'toy', 0.7296116352081299],\n",
       " [92, 'metal dog crate', 352, 'crate', 0.7008328437805176],\n",
       " [98, 'bath', 292, 'bath wall', 0.7822004556655884],\n",
       " [99, 'colors', 343, 'color', 0.9211174249649048],\n",
       " [100, 'toy', 150, 'toys', 0.8796299695968628],\n",
       " [100, 'toy', 276, 'toy biz', 0.7597988843917847],\n",
       " [112, 'dry diapers', 347, 'diaper', 0.7305513620376587],\n",
       " [121, 'quality products', 153, 'quality', 0.7628679871559143],\n",
       " [125, 'hands', 339, 'hand', 0.8885493278503418],\n",
       " [133, 'lots', 214, 'lot', 0.760785698890686],\n",
       " [150, 'toys', 230, 'hard toys', 0.808073103427887],\n",
       " [150, 'toys', 276, 'toy biz', 0.7291627526283264],\n",
       " [165, 'child', 297, 'kids', 0.7220273017883301],\n",
       " [181, 'great fun', 289, 'fun', 0.7681715488433838],\n",
       " [199, 'pieces', 244, 'piece set', 0.7889491319656372],\n",
       " [202, 'month old girls', 279, 'babies', 0.7588071823120117],\n",
       " [262, 'beautiful', 281, 'amazing', 0.7121585607528687],\n",
       " [270, 'skin problem', 271, 'skin', 0.731295108795166],\n",
       " [281, 'amazing', 328, 'great', 0.709161639213562],\n",
       " [307, 'black', 343, 'color', 0.7855720520019531]]"
      ]
     },
     "execution_count": 158,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sim_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {},
   "outputs": [],
   "source": [
    "for info in sim_list:\n",
    "    if info[1] in unique_class:\n",
    "        unique_class.remove(info[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['shampoo',\n",
       " 'cola',\n",
       " 'rest',\n",
       " 'favorite toa inika',\n",
       " 'love',\n",
       " 'stomach problems',\n",
       " 'face cradle',\n",
       " 'smooth shave',\n",
       " 'new denim',\n",
       " 'rechargable batteries',\n",
       " 'power toothbrush',\n",
       " 'nail polish',\n",
       " 'potty stool',\n",
       " 'box',\n",
       " 'mapquest',\n",
       " 'light weight plastic',\n",
       " 'amazon',\n",
       " 'dust',\n",
       " 'house',\n",
       " 'calf size',\n",
       " 'names',\n",
       " 'replacement remote motor',\n",
       " 'breast',\n",
       " 'ounce packages',\n",
       " 'better',\n",
       " 'trait eacute',\n",
       " 'clearblue easy pregnancy test',\n",
       " 'doctors tomorrow',\n",
       " 'minutes',\n",
       " 'tea',\n",
       " 'trap cards',\n",
       " 'bags',\n",
       " 'door',\n",
       " 'blueberry cheesecake',\n",
       " 'christmas',\n",
       " 'spelling',\n",
       " 'color loose powder matte',\n",
       " 'wing fighter vehicle',\n",
       " 'heating unit',\n",
       " 'pack',\n",
       " 'glad',\n",
       " 'barbie kelly giggles',\n",
       " 'nice',\n",
       " 'rich chocolate taste',\n",
       " 'older versin',\n",
       " 'square mirror',\n",
       " 'sounds',\n",
       " 'clean',\n",
       " 'prostate health',\n",
       " 'god',\n",
       " 'limited warranty',\n",
       " 'low fat',\n",
       " 'piece jigsaw puzzle',\n",
       " 'best',\n",
       " 'eacute ricain',\n",
       " 'aragorn',\n",
       " 'lipbalm flavors available',\n",
       " 'bottle',\n",
       " 'puzzles',\n",
       " 'fisher price',\n",
       " 'spf moisturizer',\n",
       " 'heavy flow',\n",
       " 'great basket stuffer',\n",
       " 'early morning',\n",
       " 'tandem stroller',\n",
       " 'invasive sounds',\n",
       " 'addictive',\n",
       " 'tongue',\n",
       " 'hair',\n",
       " 'happy',\n",
       " 'bucket',\n",
       " 'goodstrong clean leather',\n",
       " 'easier',\n",
       " 'adjustable',\n",
       " 'satin border',\n",
       " 'wheels',\n",
       " 'stain eliminator',\n",
       " 'year old',\n",
       " 'thank',\n",
       " 'wild tadpoles',\n",
       " 'taste',\n",
       " 'jojoba',\n",
       " 'active grandson',\n",
       " 'stars',\n",
       " 'pump',\n",
       " 'worth',\n",
       " 'zum bar',\n",
       " 'dog kibble',\n",
       " 'hour flight',\n",
       " 'floor',\n",
       " 'glasses',\n",
       " 'inch baby',\n",
       " 'able',\n",
       " 'blade',\n",
       " 'dry weather',\n",
       " 'scented soap',\n",
       " 'month',\n",
       " 'sears',\n",
       " 'wagon',\n",
       " 'beers',\n",
       " 'buttons',\n",
       " 'hand soap',\n",
       " 'healthy',\n",
       " 'balls',\n",
       " 'new cover',\n",
       " 'fake',\n",
       " 'horse',\n",
       " 'truck playset kids',\n",
       " 'rubber curry brush',\n",
       " 'pleasant coconut taste',\n",
       " 'variable settings',\n",
       " 'tent',\n",
       " 'gift',\n",
       " 'screw',\n",
       " 'week',\n",
       " 'fitsseveral trains',\n",
       " 'laundry',\n",
       " 'fresh water available',\n",
       " 'aveeno contact form',\n",
       " 'spicy foods',\n",
       " 'body',\n",
       " 'mayfair games',\n",
       " 'quality',\n",
       " 'time',\n",
       " 'great game',\n",
       " 'noses',\n",
       " 'flea infestation',\n",
       " 'mini figures',\n",
       " 'satisfied',\n",
       " 'pain',\n",
       " 'nescafe frappes',\n",
       " 'men',\n",
       " 'larvae',\n",
       " 'basic stethoscope',\n",
       " 'cartoon charaters',\n",
       " 'florescence lights',\n",
       " 'day',\n",
       " 'weight',\n",
       " 'mommy',\n",
       " 'protein powder',\n",
       " 'dog',\n",
       " 'video monitor',\n",
       " 'defective mask',\n",
       " 'zillion straps',\n",
       " 'iron',\n",
       " 'bees',\n",
       " 'heavy coat',\n",
       " 'walk way',\n",
       " 'money',\n",
       " 'dog collar',\n",
       " 'traditional wipes',\n",
       " 'perfect',\n",
       " 'avent',\n",
       " 'tree',\n",
       " 'summer',\n",
       " 'expiration',\n",
       " 'variable speed body massager',\n",
       " 'chair',\n",
       " 'hole',\n",
       " 'paint',\n",
       " 'spares',\n",
       " 'tray',\n",
       " 'transformers',\n",
       " 'sleep time',\n",
       " 'toes',\n",
       " 'smell',\n",
       " 'dish brush',\n",
       " 'nature',\n",
       " 'ounce bars',\n",
       " 'emotional',\n",
       " 'walkers',\n",
       " 'nice scent',\n",
       " 'baby',\n",
       " 'sticky',\n",
       " 'makeup',\n",
       " 'rods',\n",
       " 'sound',\n",
       " 'sure',\n",
       " 'lip calm',\n",
       " 'lot',\n",
       " 'love ring',\n",
       " 'clothing',\n",
       " 'professional hair dryer',\n",
       " 'melissa doug deluxe',\n",
       " 'organic coffee',\n",
       " 'natural',\n",
       " 'litter',\n",
       " 'friends',\n",
       " 'ultimate baking',\n",
       " 'bigger',\n",
       " 'sinuses',\n",
       " 'sardines',\n",
       " 'soft',\n",
       " 'urine',\n",
       " 'fluoride',\n",
       " 'hard toys',\n",
       " 'legos',\n",
       " 'bulbs',\n",
       " 'fox bat cuddlekin',\n",
       " 'extra shipping',\n",
       " 'great product',\n",
       " 'driveway',\n",
       " 'milk',\n",
       " 'small pets',\n",
       " 'sugar',\n",
       " 'car',\n",
       " 'boring',\n",
       " 'aspirin tylenol',\n",
       " 'tiniest baby',\n",
       " 'piece set',\n",
       " 'panasonic high speed shaver',\n",
       " 'attachments',\n",
       " 'zico pure premium coconut water',\n",
       " 'swappable battery',\n",
       " 'super glue',\n",
       " 'later date',\n",
       " 'decor piece',\n",
       " 'chopper',\n",
       " 'husband',\n",
       " 'solid food',\n",
       " 'burt',\n",
       " 'roller coaster',\n",
       " 'carrier',\n",
       " 'body wash',\n",
       " 'internet',\n",
       " 'great mascara',\n",
       " 'book',\n",
       " 'favorite movie',\n",
       " 'cute addition',\n",
       " 'durable',\n",
       " 'tiny waist',\n",
       " 'trimmer',\n",
       " 'xylitol',\n",
       " 'mat',\n",
       " 'skin',\n",
       " 'girlfriend',\n",
       " 'lavilin foot deodorant cream',\n",
       " 'backpack style diaper bag',\n",
       " 'washable nursing pads',\n",
       " 'toy biz',\n",
       " 'grumpy parents',\n",
       " 'dogs hip joint formula level',\n",
       " 'babies',\n",
       " 'bac',\n",
       " 'pen',\n",
       " 'refills',\n",
       " 'cologne history',\n",
       " 'conversion crib',\n",
       " 'weather station',\n",
       " 'soft curly hair',\n",
       " 'dolls',\n",
       " 'fun',\n",
       " 'useless number',\n",
       " 'perfume',\n",
       " 'bath wall',\n",
       " 'baby pony pink sunsparkle',\n",
       " 'birthday',\n",
       " 'car seat extra base',\n",
       " 'wood',\n",
       " 'kids',\n",
       " 'vegetable soup mix',\n",
       " 'leapfrog leapster educational game dora',\n",
       " 'com',\n",
       " 'jeans pockets',\n",
       " 'cards',\n",
       " 'big disappointment',\n",
       " 'doc johnson lucid dream',\n",
       " 'thylox medicated soap',\n",
       " 'desk',\n",
       " 'legs',\n",
       " 'garden',\n",
       " 'songs',\n",
       " 'tub time adventure',\n",
       " 'size',\n",
       " 'mosquito bites',\n",
       " 'unhairiest dog',\n",
       " 'cat',\n",
       " 'roof',\n",
       " 'shea butter lotion bar',\n",
       " 'itch',\n",
       " 'omron recomendation',\n",
       " 'magic cube',\n",
       " 'people',\n",
       " 'disappointing',\n",
       " 'dentists',\n",
       " 'thin',\n",
       " 'little cars',\n",
       " '30ml',\n",
       " 'slower speed',\n",
       " 'great',\n",
       " 'dairy cow',\n",
       " 'beautiful color',\n",
       " 'chamber replacement filters',\n",
       " 'price',\n",
       " 'inch diameter hole',\n",
       " 'bowls',\n",
       " 'bed',\n",
       " 'groove',\n",
       " 'magna',\n",
       " 'actual music making',\n",
       " 'hand',\n",
       " 'lady',\n",
       " 'cups',\n",
       " 'calcium',\n",
       " 'color',\n",
       " 'faulty',\n",
       " 'rescue organization',\n",
       " 'sister',\n",
       " 'diaper',\n",
       " 'bacteria',\n",
       " 'webkinz bull dog',\n",
       " 'waterproof bench seat cover',\n",
       " 'wrong thing',\n",
       " 'crate',\n",
       " 'year',\n",
       " 'games',\n",
       " 'tanning lotion',\n",
       " 'great price',\n",
       " 'weight loss regiment',\n",
       " 'son',\n",
       " 'dirty water']"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "unique_class"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "unique_class.remove('Data Mining and Machine Learning')\n",
    "unique_class.remove('Communication Systems and Networks')\n",
    "unique_class.remove('Error Correction Codes')\n",
    "unique_class.remove('Networking and Communications')\n",
    "\n",
    "\n",
    "unique_class.remove('Theoretical Computer Science')\n",
    "unique_class.remove('Quantum Information Processing'')\n",
    "unique_class.remove('Financial Reporting')\n",
    "unique_class.remove('Economy/Finance')\n",
    "unique_class.remove('Economy/Business')\n",
    "unique_class.remove('Finance')\n",
    "unique_class.remove('Mergers and Acquisitions')\n",
    "unique_class.remove('Elections/Voting')\n",
    "unique_class.remove('Labor Negotiations')\n",
    "\n",
    "\n",
    "unique_class.remove('Energy/Commodities')\n",
    "unique_class.remove('Financial/Economic')\n",
    "unique_class.remove('Litigation')\n",
    "unique_class.remove('Conflict/War')\n",
    "unique_class.remove('Stock Prices')\n",
    "unique_class.remove('Legal/Court Cases')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('../../datasets/Amazon-531/keyword_ext/update_labelspace_pke.txt', 'a') as the_file:\n",
    "    for label in unique_class:\n",
    "        the_file.write(label + '\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Multi-Label",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
